import { createRouter, createWebHistory } from "vue-router";
import { defineAsyncComponent } from "vue";

// 自动导入views目录下的所有index.vue文件
const routes = [];

// 使用 import.meta.glob 自动导入 views 目录下一层目录下的 index.vue 文件（只匹配 ../views/*/index.vue）
const modules = import.meta.glob("../views/*/index.vue");

// 遍历所有匹配的文件
for (const path in modules) {
  // 从路径中提取路由路径
  // 例如: '../views/a/index.vue' => '/a'
  const routePath =
    path.replace("../views", "").replace("/index.vue", "") || "/";

  // 从路径中提取组件名称，例如: '../views/a/index.vue' => 'a'
  const name =
    path.replace("../views/", "").replace("/index.vue", "") || "home";

  // 将组件包装为异步组件以保持行为一致
  const component = defineAsyncComponent(() => modules[path]());

  // 添加到路由配置
  routes.push({
    path: routePath,
    name,
    component,
    // 可以根据需要添加其他配置，如meta等
  });
}

// 添加首页路由
if (!routes.some((route) => route.path === "/")) {
  routes.push({
    path: "/",
    name: "home",
    component: defineAsyncComponent(() => import("../components/HomePage.vue")),
  });
}

// 创建路由实例
const router = createRouter({
  history: createWebHistory(),
  routes,
});

export default router;
